This invention relates to conversions of images between different representations.
Computers and related output devices, such as displays and printers, represent colors numerically, typically in the form of one or more color components in a color space. Each color component is represented as a numerical value and together the color component values provide the information necessary to generate a desired color on an output device. The device color space defines the interpretation of the color component values used to represent a color on a device. Examples of device color spaces are RGB (Red, Green and Blue) and CMYK (Cyan, Magenta, Yellow and Black). In most color spaces, a color is represented by one to four numbers, one for each component of the color space.
Different devices often use different color spaces to represent colors, which creates a need for converting colors between different color spaces. The International Color Consortium (ICC) promotes standardization of color management and has standardized a way to express color space definitions, which are also referred to as profiles. In an ICC-based color management system, there is a standard reference color space into or out of which color values from various device color spaces are transformed. This standard reference space is commonly known as a profile connection space (PCS). For each transformation from a device color space to the PCS, there is a source profile that defines how much device specific color is used to render a given color accurately in the PCS. For each transformation from the PCS to a device color space, there is a destination profile that defines how much device specific color is used to render accurately a color that is given in the PCS. In the ICC-based color management system, there are two profile connection spaces that can be used, the CIE (Commision Internationale de l'Eclairage) XYZ profile connection space and the CIE L*a*b* profile connection space. The ICC-based color management system makes it possible for all devices that participate in a workflow to display the same color, either in a perceptually pleasing sense or in some colorimetric sense.
Users, such as test engineers, that convert colors between device color spaces often have difficulties in determining if a color conversions has been done correctly. In particular, when a series of conversions between different color spaces is done, there may be a slight difference at each conversion that is hard or impossible to distinguish, but that results in an image with a different color appearance from the original. In such a situation, it is more or less impossible for the user to determine where in the series the incorrect color conversion occurred. The user typically has to resort to some form of trial and error method to solve the problem, which can be a very time consuming and non-systematic approach. A similar type of situation can occur when an image is converted between different formats, such as an 8-bit representation and a 16-bit representation, when an image is compressed and then expanded, and so on.